Компенсация от Shopify для украинского бизнеса

Дескрипторы объекта


Дескрипторы (handles) используются для доступа к объектам Ликвида. По умолчанию, дескриптор - это название объекта, представленный в нижнем регистре с пробелами и другими символами замененными на дефисы (-).

Для примера, страница с названием "О нас" может быть получена в Ликвид-файле с использованием дескриптора "о-нас", как показано ниже:

<!-- контент страницы "О нас"  -->
{{ pages['о-нас'].content }}

 В этой статье

Как создаются дескрипторы

Странице с названием "Рубашка" автоматически присвоится дескриптор "рубашка". Если ранее другой странице уже был присвоен дескриптор "рубашка", то для новосозданной будет использовано автоматический инкремент. Другими словами, новым страницам с названием "Рубашка" будет присвоен дескриптор "рубашка-1" или "рубашка-2" и т.д.

При создании дескриптора пробел в названии страницы заменяется символом тире. Например, странице с названием "Название новой футболки" автоматически присвоится дескриптор "название-новой-футболки".

Также дескриптор определяет URL страницы. Например, страница с дескриптором "белая-рубашка" будет иметь URL https://my-shop.myshopify.com/pages/белая-рубашка.

В темах Shopify разработчики часто используют статические дескрипторы для страниц, товаров или меню. Чтобы сохранить работоспособность элемента и функций дизайна, Shopify не изменяет дескриптор при изменении названия объекта (страницы, товара, меню и т.д.).

То есть, если вы поменяете название страницы с "О нас" на "Наша компания", то дескриптор останется прежний - "о-нас". При необходимости, вы можете изменить дескриптор вручную.

Доступ к атрибутам дескриптора

Во многих случаях вы знаете название дескриптора объекта, доступ к которому вы хотите получить. Чтобы использовать его вы можете применить один из способов обращения к объекту - с использованием квадратных скобок  (["дескриптор"]) или с использованием точечной нотации (.дескриптор).

{{ pages['о-нас'].title }}
{{ pages.о-нас.title }}

В обоих случаях код выведет название страницы:

О нас
О нас

Заметьте, что дескриптор запрашивается из объекта pages, а не page.

Вместо прямого указания дескриптора вы также можете задать объект из редактора темы. Эта возможность полезна тем разработчикам, которые хотят дать пользователям своих тем возможность выбирать, какой контент отображать в своей теме.

{% for product in collections[settings.home_featured_collection].products %}
{{ product.title }}
{% endfor %}